package com.adapter.demo06;

import java.util.Map;

/**
 * 适配器角色：在我司信息系统中如何查询外包公司人员信息，采用这个中间角色进行适配
 * IOuterUser、OuterUser 类是外包公司信息系统中定义的，我们系统中并没有，因此需要采用RMI技术，可以将远程
 * 的IOuterUser、OuterUser 对象当做本地对象使用。
 * 我们之所以能够增加一个OuterUserInfo中转类，是因为我们在系统设计时严格遵 守了依赖倒置原则和里氏替换原则，否则即使增加了中转类也无法解决问题
 * 引自：《设计模式之禅》
 */
public class OuterUserInfo extends OuterUser implements IUserInfo{
    private Map baseInfo = super.getUserBaseInfo();
    private Map officeInfo = super.getUserOfficeInfo();
    private Map homeInfo = super.getUserHomeInfo();


    public String getUserName() {
        String userName = (String) this.baseInfo.get("userName");
        System.out.println(userName);
        return userName;
    }

    public String getMobileNumber() {
        String mobileNumber = (String) this.baseInfo.get("mobileNumber");
        System.out.println(mobileNumber);
        return mobileNumber;
    }

    public String getOfficeTelNumber() {
        String officeTelNumber = (String) this.officeInfo.get("officeTelNumber");
        System.out.println(officeTelNumber);
        return officeTelNumber;
    }

    public String getJobPosition() {
        String jobPosition = (String) this.officeInfo.get("jobPosition");
        System.out.println(jobPosition);
        return jobPosition;
    }

    public String getHomeAddress() {
        String homeAddress = (String) this.homeInfo.get("homeAddress");
        System.out.println(homeAddress);
        return homeAddress;
    }

    public String getHomeTelNumber() {
        String homeTelNumber = (String) this.homeInfo.get("homeTelNumber");
        System.out.println(homeTelNumber);
        return homeTelNumber;
    }
}
